package com.vic.classloader.class_load_time.active_ref;

/**
 * 主动引用
 * 1 当遇到 new 、 getstatic、putstatic 或 invokestatic 这 4 条字节码指令时。
 */
public class Test1 {

    public static void main(String[] args){
        // 执行以下字节代码，类会被加载
        // 1. new指令
//        Parent parent = new Parent();

        // 2. getStatic指令
//        System.out.println(Parent.i);

        // 3. putStatic指令
//        Parent.i=4;

        // 4. invokeStatic 指令
//        Parent.dosth();

        // 如果是访问常量，会到常量池中获取，不会触发类加载
        System.out.println(Parent.k);
    }
}

class Parent{
    static int i = 3;
    static final int k = 3;
    static {
        System.out.println("Parent类被加载");
    }
    public static void dosth() {
    }
}